package com.hspedu.abstract_;

/**
 * @Author Stringzhua
 * @Date 2024/3/5 21:36
 * description:
 */
public class AbstractDetail02 {
    public static void main(String[] args) {
        System.out.println("hello");

    }
}

//8.抽象方法不能使用private、final和static来修饰,因为这些关键字都是和重写相违背的
abstract class H {
    //    private abstract void hi();//错误
//    public final abstract void hi();//错误
//    public static void hi();//错误
    public abstract void hi();
}


//7.如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类
abstract class E {
    public abstract void hi();
}

abstract class F extends E {//Class 'F' must either be declared abstract or implement abstract method 'hi()' in 'E'

}

class G extends E {
    //相当于子类G实现抽象类父类F的所有方法

    @Override
    public void hi() {//所谓实现方法,就是有方法体

    }
}

//5.抽象类的本质还是类,所以可以有所有类的成员
abstract class D {
    public int n1 = 10;
    public static String name = "爪爪吃蒸饺";

    public void hi() {
        System.out.println("hi");
    }

    public abstract void hello();

    public static void ok() {
        System.out.println("ok");
    }
}
